"""
【json】
"""

"""
【json】
    json是一种轻量级的数据交互格式。本质上是一个带有特定格式的字符串。
    
    功能：在各个编程语言中流通的数据格式，负责不同编程语言中的数据传递和交互。
    
    JSON格式数据转化：
        # 导入json模块
        import json

        # 准备符合json格式要求的python数据
        data = [{"name":"zhangsan","age":13},{"name":"lisi","age":24}]

        # 通过该方法把python数据转化为json数据，称之为序列化
        data = json.dumps(data)

        # 通过该方法把json数据转化为python数据，称之为反序列化
        data = json.loads(data)
        
        json类型数据在python中是一个字符串类型
"""

import json
import os
import time

# 准备符合json格式要求的python数据
data = [
    {"name": "zhangsan", "age": 13},
    {"name": "lisi", "age": 24},
    {"name": "王五", "age": 35},
]
with open("data.json", "w", encoding="utf-8") as f:
    # 通过该方法把python数据转化为json数据，并写入文件
    json.dump(
        data, f, ensure_ascii=False, indent=4
    )  # ensure_ascii=False 解决中文乱码问题, indent=4 格式化输出

# 读取json数据并反序列化
with open("data.json", "r", encoding="utf-8") as f:
    # 通过该方法把json数据转化为python数据
    data = json.load(f)
    print(data, type(data))

time.sleep(10)

os.remove("data.json")


import pickle

""" 用法与json类似，但pickle可以处理任意python对象，而json只能处理json格式数据。 """

# 准备python对象
data = [
    {"name": "zhangsan", "age": 13},
    {"name": "lisi", "age": 24},
    {"name": "王五", "age": 35},
]

# 序列化
with open("data.pkl", "wb") as f:
    pickle.dump(data, f)


# 反序列化
with open("data.pkl", "rb") as f:
    data = pickle.load(f)
    print(data, type(data))


time.sleep(10)

os.remove("data.pkl")
